; 21
#(loop [s %1, i %2]
    (if (< i 1)
      (first i)
      (recur (rest s) (- i 1))))

; #22
#(loop [i 0, s %]
    (if (empty? s)
      i
      (recur (+ 1 i) (rest s))))

; 23 reverse list without reverse resq
#(reduce '() %)

; 24 sum it all up
#(reduce + %)

; 25 find the odd numbers
#(filter odd? %)

; 26 fibonacci sequence
#(if (< % 2)
  [1]
  (loop [s [1], n %, a 0, b 1]
    (if (< n 2)
      s
      (recur (conj s (+ a b))
             (- n 1)
             b
             (+ a b)))))

;#27Palindrome Detector
(fn mirror? [lst]
  (loop [l lst]
    (if (empty? l)
      true
      (if (= (first l) (last l))
        (recur (reverse (rest (reverse (rest l)))))
        false))))
